package com.ruoyi.system.service;

import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.system.domain.JingfeiPici;
import com.ruoyi.system.mapper.JingfeiDeptMapper;
import com.ruoyi.system.tools.CreateXLS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

@Service
public class DaochuService {

	@Autowired
	private IJingfeiPiciService jingfeiPiciService;

	@Autowired
	private IJingfeiDeptService jingfeiDeptService;

	@Autowired
	private JingfeiDeptMapper jingfeiDeptMapper;

	// 导出更名纪录
	public void daochubokuanbiao(String ppPiciId,HttpServletRequest request,
			HttpServletResponse response) {
		// 经费批次
		JingfeiPici mmJingfeiPici = jingfeiPiciService.selectJingfeiPiciById(ppPiciId);

		// 下一级单位
		List<Map<String,Object>> mmList = selectXiajiyiByPiciIdAndDeptId(ppPiciId,mmJingfeiPici.getDeptid());

		// 表头
		List<List<String>> mmResultList = new ArrayList<List<String>>();		
		List<String> mmTitleList = new ArrayList<String>();
		
		mmTitleList.add("序号");	
		mmTitleList.add("单位代码");
		mmTitleList.add("部门或地区");
		mmTitleList.add("总人数");
		mmTitleList.add("应拨金额");
		mmTitleList.add("其中：补发金额");
		mmTitleList.add("结余金额");
		mmTitleList.add("收款单位");
		mmTitleList.add("开户银行");
		mmTitleList.add("联行号");
		mmTitleList.add("地点");
		mmTitleList.add("银行账号");
		mmTitleList.add("联系方式");
		mmTitleList.add("本次拨款说明");
		
		mmResultList.add(mmTitleList);
		
		try {
			// 循环
			for (int i = 0; i < mmList.size(); i++) {
				List<String> tempList = new ArrayList<String>();
				Map<String,Object> 单位信息Map = mmList.get(i);


				String mm单位代码 = 单位信息Map.get("danweidaima") == null ? "" : 单位信息Map.get("danweidaima").toString();
				String mm部门或地区 = 单位信息Map.get("bumenhuodiqu") == null ? "" : 单位信息Map.get("bumenhuodiqu").toString();
				String mm总人数 = 单位信息Map.get("zongrenshu") == null ? "0" : 单位信息Map.get("zongrenshu").toString();
				String mm应拨金额 = 单位信息Map.get("yingbojine") == null ? "0" : 单位信息Map.get("yingbojine").toString();
				String mm补发金额 = 单位信息Map.get("bufajine") == null ? "0" : 单位信息Map.get("bufajine").toString();
				String mm结余金额 = 单位信息Map.get("jieyujingfei") == null ? "0" : 单位信息Map.get("jieyujingfei").toString();
				String mm收款单位 = 单位信息Map.get("shoukuandanwei") == null ? "" : 单位信息Map.get("shoukuandanwei").toString();
				String mm开户银行 = 单位信息Map.get("kaihuyinhang") == null ? "" : 单位信息Map.get("kaihuyinhang").toString();
				String mm联行号 = 单位信息Map.get("lianhanghao") == null ? "" : 单位信息Map.get("lianhanghao").toString();
				String mm地点 = 单位信息Map.get("didian") == null ? "" : 单位信息Map.get("didian").toString();
				String mm银行账号 = 单位信息Map.get("yinhangzhanghao") == null ? "" : 单位信息Map.get("yinhangzhanghao").toString();
				String mm联系方式1 = 单位信息Map.get("lianxiren") == null ? "" : 单位信息Map.get("lianxiren").toString();
				String mm联系方式2 = 单位信息Map.get("lianxifangshi1") == null ? "" : 单位信息Map.get("lianxifangshi1").toString();
				String mm联系方式3 = 单位信息Map.get("lianxifangshi2") == null ? "" : 单位信息Map.get("lianxifangshi2").toString();
				String mm联系方式 = mm联系方式1 + " " + mm联系方式2 + " " + mm联系方式3;

				//拨款说明
				String mm本次拨款说明 = "";

				tempList.add((i+1)+"");              // 序号
				tempList.add(mm单位代码);
				tempList.add(mm部门或地区);
				tempList.add(mm总人数);
				tempList.add(mm应拨金额);
				tempList.add(mm补发金额);
				tempList.add(mm结余金额);
				tempList.add(mm收款单位);
				tempList.add(mm开户银行);
				tempList.add(mm联行号);
				tempList.add(mm地点);
				tempList.add(mm银行账号);
				tempList.add(mm联系方式);
				tempList.add(mm本次拨款说明);

				mmResultList.add(tempList);
			}
			
			// 获得当前日期
			Date mmDate = new Date();
			DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
			String mmDateString = f.format(mmDate);


			String userfilepath = RuoYiConfig.getUploadPath();

			// 取出文档存放的根目录，并去除文件最后的斜杠
			if (userfilepath.endsWith("/")) {
				userfilepath = userfilepath.substring(0, userfilepath.length() - 1);
			}
			
			String FileUrl = userfilepath + "/temp/bokuanbiao/"+ mmDateString+"/"+UUID.randomUUID().toString()+"/";
			CreateXLS.createExcel(mmResultList, FileUrl, "bokuanbiao.xls", "bokuanbiao",
					request, response);
			
		} catch (Exception e) {
			e.printStackTrace();
			
		}
	}

//	private Map<String, List<Map<String, Object>>> getBokuanshuoming() {
//		Map<String, List<Map<String, Object>>> result = new HashMap();
//		List
//
//	}
	public List<Map<String,Object>> selectXiajiyiByPiciIdAndDeptId(String ppPiciId,String ppDeptId){
		return jingfeiDeptMapper.selectXiajiyiByPiciIdAndDeptId(ppPiciId,ppDeptId);
	}
}
